home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor2 / timekeep.src < prev    next >
Text File  |  1994-01-04  |  1KB  |  45 lines

  1. %%HP: T(3);
  2. DIR
  3.  
  4.   CDP       @ Clock Data Put
  5. \<< \-> V L \<< 'CLKDAT' L V PUT \>> \>>
  6.  
  7.   CDG       @ Clock Data Get
  8. \<< 'CLKDAT' SWAP GET \>>
  9.  
  10.   PA        @ PreAmble
  11. \<< RCLF 64 STWS 2 CDG TICKS 1 CDG - OVER - B\->R \>>
  12.  
  13.   AO        @ Alarm Object
  14. \<< IFERR DROP PATH :&: JOB RCL EVAL EVAL THEN ERRM END OFF \>>
  15.  
  16.   RESET     @ Reset Reference Time
  17. \<< TICKS 1 CDP 0 2 CDP \>>
  18.  
  19.   CLKDAT    @ Clock Data
  20. { #0 0 0 }
  21.  
  22.   CANCEL    @ Cancel Alarm
  23. \<< RCLF -55 SF IFERR 1 \-> I \<< WHILE I RCLALARM IF 3 GET 'AO'
  24. RCL SAME THEN I DELALARM 1 ELSE 'I' INCR END REPEAT END \>> THEN
  25. END STOF \>>
  26.  
  27.   SCHEDULE           @ Schedule Alarm
  28. \<< CANCEL PATH HOME IF :&: JOB VTYPE 0 < THEN DUP 'KICK' +
  29. :&: JOB STO END EVAL DATE 1 DATE+ 4 'AO' RCL 707788800 4 \->LIST
  30. STOALARM DROP \>>
  31.  
  32.   EXACT     @ Compute Accuracy Factor
  33. \<< PA / 3 CDP STOF \>>
  34.  
  35.   ADJC      @ Adjust Clock
  36. \<< DUP 2 CDG + 2 CDP CLKADJ \>>
  37.  
  38.   ADJT      @ Adjust Time
  39. \<< 1_s CONVERT UVAL 8192 * DUP 1 CDG + 1 CDP CLKADJ \>>
  40.  
  41.   KICK      @ Kick Clock
  42. \<< PA 3 CDG * 0 RND SWAP - ADJC STOF \>>
  43.  
  44. END
  45.